#include "libGeoutils/tool/normalize_tool.h"
#include <vector>
#include <iostream>

int main()
{
	std::vector<double> values = { -10.0, 0.0, 5.0, 15.0, 25.0 };

	geo::tool::Normalizer<double, float> normalizer;
	std::vector<float> normalized_values;
	normalizer.normalizeVector(values, normalized_values, 0.0f, 1.0f);
	std::cout << "Normalized Values: ";
	for (const auto& val : normalized_values) {
		std::cout << val << " ";
	}
	std::cout << std::endl;

	std::vector<float> limited_values;
	normalizer.limitVectorMinMax(values, limited_values, 0.0f, 20.0f);
	std::cout << "Limited Values: ";
	for (const auto& val : limited_values) {
		std::cout << val << " ";
	}
	std::cout << std::endl;

	geo::tool::Normalizer<float, float> normalizer_ff;
	normalizer_ff.normalizeVector(limited_values, normalized_values, 0.0f, 1.0f);
	std::cout << "Limited Normalized Values: ";
	for (const auto& val : normalized_values) {
		std::cout << val << " ";
	}
	std::cout << std::endl;

	return 0;
}